local voucherId = ARGV[1]
local userId = ARGV[2]
local orderId = ARGV[3]
local stockPrefix =  "seckill:stock:"
local orderPrefix =  "seckill:order:"
local streamName = "stream.orders"
--判断库存
local stock = redis.call('get',stockPrefix..voucherId)
if(tonumber(stock)<1) then
    return 1
end
--判断是否下单
if(redis.call('sismember',orderPrefix..voucherId,userId)==1) then
    return 2
end
--添加用户信息
redis.call('incrby',stockPrefix..voucherId,-1)
redis.call('sadd',orderPrefix..voucherId,userId)
--添加信息到消息队列中
redis.call('xadd',streamName,'*','userId',userId,'voucherId',voucherId,'id',orderId)
return 0